package com.xs.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.xs.common.R;
import com.xs.domain.Consumer;
import com.xs.domain.dto.ConsumerDTO;

import java.util.List;

/**
* @author admin
* @description 针对表【consumer(前端注册用户)】的数据库操作Service
* @createDate 2023-01-02 15:39:51
*/
public interface ConsumerService extends IService<Consumer> {
    /**
     * 登录
     * @param adminRequest
     * @return
     */
    R verityPasswd(ConsumerDTO adminRequest);

    /**
     * 注册
     * @param registryRequest
     * @return
     */
    R addUser(ConsumerDTO registryRequest);

    /**
     * 分页查找用户信息
     * @param pageNum
     * @param pageSize
     * @param username
     * @return
     */
    R findPage(Integer pageNum, Integer pageSize,String username);

    /**
     * 修改用户
     * @param updateRequest
     * @return
     */
    R updateUserMsg(ConsumerDTO updateRequest);


    /**
     * 修改密码
     * @param updatePasswordRequest
     * @return
     */
    R updatePassword(ConsumerDTO updatePasswordRequest);

    /**
     * 判断重名
     * @param username
     * @return
     */
    boolean existUser(String username);

    /**
     *判断密码是否正确
     * @param username
     * @param password
     * @return
     */
    boolean verityPasswd(String username, String password);

    /**
     * 删除
     * @param id
     * @return
     */
    R deleteUser(Integer id);

    /**
     * 批量删除
     * @param ids
     * @return
     */
    R deleteBathIds(List<Integer> ids);

    R allUser();

    /**
     * 根据id查找用户
     * @param id
     * @return
     */
    R userOfId(Integer id);


    /**
     * 查询用户总数
     * @return
     */
    int consumerCount();

    /**
     * 查询需要审批的用户
     * @return
     */
    Page<ConsumerDTO> needConsumerType(Page<ConsumerDTO> page);

}
